    <?php
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @copyright   Copyright (c) 2014 X.commerce, Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
?>
<?php
/** @var $this \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Price\Group */
$element = $this->getElement();
$_htmlId = $this->getElement()->getHtmlId();
$_htmlClass = $this->getElement()->getClass();
$_htmlName = $this->getElement()->getName();
$_readonly = $this->getElement()->getReadonly();
$_priceValueValidation = $this->getPriceValidation('validate-zero-or-greater');

$_showWebsite= $this->isMultiWebsites();
?>
<div class="field" id="attribute-<?php echo $_htmlId?>-container" data-attribute-code="<?php echo $_htmlId?>"
     data-apply-to="<?php echo $this->escapeHtml(
         $this->helper('Magento\Core\Helper\Data')->jsonEncode(
             $element->hasEntityAttribute() ? $element->getEntityAttribute()->getApplyTo() : array()
         )
     )?>">
    <label class="label"><span><?php echo $this->getElement()->getLabel(); ?></span></label>
    <div class="control">
        <table cellspacing="0" class="data-table" id="group_prices_table">
            <thead>
                <tr>
                    <th <?php if (!$_showWebsite): ?>style="display: none;"<?php endif; ?>><?php echo __('Web Site'); ?></th>
                    <th class="required"><?php echo __('Customer Group'); ?></th>
                    <th class="required"><?php echo $this->getPriceColumnHeader(__('Price')); ?></th>
                    <th class="col-delete"><?php echo __('Action'); ?></th>
                </tr>
            </thead>
            <tbody id="<?php echo $_htmlId; ?>_container"></tbody>
            <tfoot>
                <tr>
                    <td colspan="<?php if (!$_showWebsite): ?>5<?php else: ?>4<?php endif; ?>" class="col-actions-add"><?php echo $this->getAddButtonHtml(); ?></td>
                </tr>
            </tfoot>
        </table>

<script type="text/javascript">
require([
    "prototype",
    "mage/adminhtml/form"
], function(){

//<![CDATA[
var groupPriceRowTemplate = '<tr>'
    + '<td<?php if (!$_showWebsite): ?> style="display:none"<?php endif; ?>>'
    + '<select class="<?php echo $_htmlClass; ?> required-entry" name="<?php echo $_htmlName; ?>[{{index}}][website_id]" id="group_price_row_{{index}}_website">'
    <?php foreach ($this->getWebsites() as $_websiteId => $_info) : ?>
    + '<option value="<?php echo $_websiteId; ?>"><?php echo $this->escapeJsQuote($this->escapeHtml($_info['name'])); ?><?php if (!empty($_info['currency'])) : ?> [<?php echo $this->escapeHtml($_info['currency']); ?>]<?php endif; ?></option>'
    <?php endforeach; ?>
    + '</select></td>'
    + '<td><select class="<?php echo $_htmlClass; ?> custgroup required-entry" name="<?php echo $_htmlName; ?>[{{index}}][cust_group]" id="group_price_row_{{index}}_cust_group">'
    <?php foreach ($this->getCustomerGroups() as $_groupId => $_groupName): ?>
    + '<option value="<?php echo $_groupId; ?>"><?php echo $this->escapeJsQuote($this->escapeHtml($_groupName)); ?></option>'
    <?php endforeach; ?>
    + '</select></td>'
    + '<td><input class="<?php echo $_htmlClass; ?> required-entry <?php echo $_priceValueValidation; ?>" type="text" name="<?php echo $_htmlName; ?>[{{index}}][price]" value="{{price}}" id="group_price_row_{{index}}_price" /></td>'
    + '<td class="col-delete"><input type="hidden" name="<?php echo $_htmlName; ?>[{{index}}][delete]" class="delete" value="" id="group_price_row_{{index}}_delete" />'
    + '<button title="<?php echo __('Delete Group Price'); ?>" type="button" class="action- scalable delete icon-btn delete-product-option" id="group_price_row_{{index}}_delete_button" onclick="return groupPriceControl.deleteItem(event);">'
    + '<span><?php echo __('Delete'); ?></span></button></td>'
    + '</tr>';

var groupPriceControl = {
    template: new Template(groupPriceRowTemplate, new RegExp('(^|.|\\r|\\n)({{\\s*(\\w+)\\s*}})', '')),
    itemsCount: 0,
    addItem : function () {
        <?php if ($_readonly): ?>
        if (arguments.length < 3) {
            return;
        }
        <?php endif; ?>
        var data = {
            website_id: '<?php echo $this->getDefaultWebsite(); ?>',
            group: '<?php echo $this->getDefaultCustomerGroup(); ?>',
            price: '',
            readOnly: false,
            index: this.itemsCount++
        };

        if(arguments.length >= 3) {
            data.website_id = arguments[0];
            data.group = arguments[1];
            data.price = arguments[2];
        }
        if (arguments.length == 4) {
            data.readOnly = arguments[3];
        }

        Element.insert($('<?php echo $_htmlId; ?>_container'), {
            bottom : this.template.evaluate(data)
        });

        $('group_price_row_' + data.index + '_cust_group').value = data.group;
        $('group_price_row_' + data.index + '_website').value    = data.website_id;

        <?php if ($this->isShowWebsiteColumn() && !$this->isAllowChangeWebsite()): ?>
        var websiteElement = $('group_price_row_' + data.index + '_website');
        var websiteCaption = websiteElement.options[websiteElement.selectedIndex].text;

        websiteElement.insert({after:'<span class="website-name">' + websiteCaption + '</span>'});
        websiteElement.hide();
        <?php endif;?>

        if (data.readOnly == '1') {
            ['website', 'cust_group', 'price', 'delete'].each(function(element_suffix) {
                $('group_price_row_' + data.index + '_' + element_suffix).disabled = true;
            });
            $('group_price_row_' + data.index + '_delete_button').hide();
        }

        <?php if ($_readonly): ?>
        $('<?php echo $_htmlId; ?>_container').select('input', 'select').each(this.disableElement);
        $('<?php echo $_htmlId; ?>_container').up('table').select('button').each(this.disableElement);
        <?php else: ?>
        $('<?php echo $_htmlId; ?>_container').select('input', 'select').each(function(element) {
            Event.observe(element, 'change', element.setHasChanges.bind(element));
        });
        <?php endif; ?>
    },
    disableElement: function(element) {
        element.disabled = true;
        element.addClassName('disabled');
    },
    deleteItem: function(event) {
        var tr = Event.findElement(event, 'tr');
        if (tr) {
            Element.select(tr, '.delete').each(function(element) {
                element.value='1';
            });
            Element.select(tr, ['input', 'select']).each(function(element) {
                element.hide();
            });
            Element.hide(tr);
            Element.addClassName(tr, 'no-display template');
        }
        return false;
    }
};
<?php foreach ($this->getValues() as $_item) : ?>
groupPriceControl.addItem('<?php echo $_item['website_id']; ?>', '<?php echo $_item['cust_group']; ?>', '<?php echo sprintf('%.2f', $_item['price']); ?>', <?php echo (int)!empty($_item['readonly']); ?>);
<?php endforeach; ?>
<?php if ($_readonly) : ?>
$('<?php echo $_htmlId; ?>_container').up('table').select('button')
    .each(groupPriceControl.disableElement);
<?php endif; ?>
//]]>

window.groupPriceRowTemplate = groupPriceRowTemplate;
window.groupPriceControl = groupPriceControl;
});
</script>
    </div>
</div>
